﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using CVSA.Suporte.Sinacor.BMFBovespa.Entidades;
using CVSA.Suporte.Sinacor.BMFBovespa.Dados;
using System.Globalization;


namespace CVSA.Suporte.Sinacor.BMFBovespa.Negocio
{

    public class Remedy
    {
        private Dados.Remedy remedy = new CVSA.Suporte.Sinacor.BMFBovespa.Dados.Remedy();

        public List<Chamado> ObterDados(string username, string passwd)
        {
            DateTime ultimoSincronismo = remedy.UltimoSincronismo().AddDays(-1);
            string ultimaAtualizacao = ultimoSincronismo.Day.ToString("00") + "/" + ultimoSincronismo.Month.ToString("00") + "/" + ultimoSincronismo.Year;// +" " + ultimoSincronismo.ToString("hh") + ":" + ultimoSincronismo.Minute.ToString("00") + ":" + ultimoSincronismo.Second.ToString("00") + " " + ultimoSincronismo.ToString("tt", CultureInfo.InvariantCulture);
            string Classification = @"'Incident Number' != ""INC000000347995""";
            Classification += @" AND ('Assigned Group'LIKE ""DO-DSE-SUPORTE%"") ";
            Classification += @" AND 'Last Modified Date' >= """ + ultimaAtualizacao + @"""";
            return remedy.getIncidentsWS(Classification, username, passwd);
        }

        public void Sincronizar(List<Chamado> Chamados)
        {
            remedy.SincronizarRemedy(Chamados);
        }

        public DataTable getCesta()
        {
            return remedy.getCesta();
        }

        public DataTable ObterChamadosAbertos()
        {
            return remedy.ObterDadosTemp(1);
        }

        public DataTable ObterChamadosFechados()
        {
            return remedy.ObterDadosTemp(0);
        }

        public DataTable ObterChamados()
        {
            return remedy.ObterDadosTemp(null);
        }

        public DataTable ObterChamadosDB(string clause)
        {
            return remedy.ObterDadosDB(clause);
        }

        public DataTable ObterPrioridadeChamados()
        {
            return remedy.ObterPrioridadeChamados();
        }

        public DataTable ObterAreasChamados()
        {
            return remedy.ObterAreasChamados();
        }

        public DataTable getChamadosForcatarefa(string dtInicio, string dtFim)
        {
            return remedy.getChamadosForcatarefa(dtInicio, dtFim);
        }

        public DataTable getPeriodos()
        {
            return remedy.getPeriodos();
        }

        public DataTable ObterDadosOciosos()
        {
            return remedy.ObterDadosOciosos();
        }

        public DataSet ObterDadosPersonalizados()
        {
            string Classification = @"('Assigned Group'LIKE ""DO-DSE-SUPORTE%"") ";
            return remedy.ObterDadosPersonalizados(Classification);
        }

        public DataSet ObterDadosPersonalizados(string query)
        {
            return remedy.ObterDadosPersonalizados(query);
        }

        public void AtualizarChamadosOciosos(DataTable Chamados)
        {
            remedy.AtualizarChamadosOciosos(Chamados);
        }

        public DateTime ultimoSincronismo()
        {
            return remedy.UltimoSincronismo();
        }

        public Chamado detalheChamadoBD(string idIncidente)
        {
            return remedy.detalheChamadoBD(idIncidente);
        }

        public bool InsertIncident(Chamado chamado, byte[] arquivo, string nomedoarquivo, int tamanhoarquivo)
        {
            return remedy.InsertIncident(chamado, arquivo, nomedoarquivo, tamanhoarquivo);
        }
    }
}
